package cn.xiaobai.captcha.handler.captchatype;

import cn.xiaobai.captcha.config.CaptchaProperties;
import com.wf.captcha.ChineseCaptcha;
import lombok.extern.slf4j.Slf4j;

/**
 * @Author yangdaji
 * @Date 2024/4/18
 * @PackageName cn.xiaobai.captcha.handler.captchatype
 * @ClassName ChineseCaptchaHandler
 */
@Slf4j
public class ChineseCaptchaHandlerAbstract extends AbstractCaptchaAbstractTypeHandler {

    {
        log.info("使用汉字验证码处理器");
    }

    public ChineseCaptchaHandlerAbstract() {
    }

    public ChineseCaptchaHandlerAbstract(CaptchaProperties captchaProperties) {
        super(captchaProperties);
    }

    @Override
    public String createGeneral() {
        return chinese();
    }


    /**
     * 汉字验证码
     *
     * @return
     */
    private String chinese() {
        /**
         * 可能会出现的问题:
         *  汉字在传输过程中的编码问题
         */
        log.info("汉字验证码生成中....");
        //获取字符验证码
        ChineseCaptcha chineseCaptcha = new ChineseCaptcha();
        String chinese = String.valueOf(chineseCaptcha.textChar());
        log.info("汉字验证码生成完成,即将写入流中....");
        //将验证码放入流中
        chineseCaptcha.out(this.getOutputStream());
        return chinese;
    }
}
